//////////////////////////////////////////////////////////
//
//	File: hole.h
//	Version 1.0
//	Authors: Adam Couch, Victoria Sater
//  Description: Holds methods for Hole class
//
//////////////////////////////////////////////////////////

#ifndef HOLE_H
#define HOLE_H

#include <iostream>
#include <string>
#include <queue>
#include <vector>
#include <stack>


using namespace std;

class Hole {
protected:
	// number of pebbles
	int num;
	// H
	int H;
public:
	struct CompH {
		bool operator()(const pair< int, Hole >& lhs, const pair< int, Hole >& rhs) const
		{
			return lhs.second.getH() < rhs.second.getH();
		}
	};
	// getters and setters
	int getNum() const { return num; }
	int getH() const { return H; }

	void setNum(int newNum) { num = newNum; }
	void setH(int newH) { H = newH; }
	
	void addOne() { num++; }
	void addSome(int number) { num+=number; }

	// return the opposing hole
	int getOppositeHole(int index)
	{
		if (index == 1) return 13;
		if (index == 2) return 12;
		if (index == 3) return 11;
		if (index == 4) return 10;
		if (index == 5) return 9;
		if (index == 6) return 8;
		if (index == 13) return 1;
		if (index == 12) return 2;
		if (index == 11) return 3;
		if (index == 10) return 4;
		if (index == 9) return 5;
		if (index == 8) return 6;
		return 0;
	}


};

#endif
